// instanceof 
// 核心 原型链向上查找
// 如果类型不为object则直接返回false 
// 否则一级一级向上查找
function myInstanceof(left,right){
    //基本数据类型直接返回false
    if(typeof left !== 'object' || left === null) return false;
    //getProtypeOf是Object对象自带的一个方法，能够拿到参数的原型对象
    let proto = Object.getPrototypeOf(left);
    while(true) {
        //查找到尽头，还没找到
        if(proto == null) return false;
        //找到相同的原型对象
        if(proto == right.prototype) return true;
        proto = Object.getPrototypeOf(proto);
    }
} 
console.log(myInstanceof("111", String)); //false
console.log(myInstanceof(new String("111"), String));//true